package com.doit.day01;

import java.sql.*;
import java.util.HashMap;

/**
 *  去mysql数据库中查询数据
 *  还要建立一个缓存系统   ==》 hashmap来代替
 *  去mysql数据库中查询数据之前，先去hashmap里面查一下，如果有，直接返回结果，如果没有再去查询mysql数据库
 *  查询完mysql数据库以后，还要在将查询到的数据添加到hashmap中
 */
public class _01_什么是缓存 {
    public static void main(String[] args) throws SQLException {
        //设计创建一个缓存系统
        HashMap<Integer, String> map = new HashMap<>();

        //1.创建mysql jdbc的连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        PreparedStatement pps = conn.prepareStatement("select name from user_info where id = ?");


        //给他一个查询的值
        for (int i = 1; i <= 1000; i++) {
            //首先去查询一下缓存
            String cacheName = map.get(i);
            if(cacheName != null){
                //返回对应缓存中的值
                System.out.println(cacheName);
            }else{
                //代表缓存中没有，需要查询数据库
                pps.setInt(1,i);
                //执行sql
                ResultSet resultSet = pps.executeQuery();
                while (resultSet.next()){
                    String name = resultSet.getString("name");
                    System.out.println("需要返回给客户端的值是："+name);
                    //将查询的结果放回到hashmap中
                    map.put(i,name);
                }

            }

        }



    }
}
